home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / CDragAcrossTable 1.0b1 / ExampleDemo.c < prev    next >
Text File  |  1993-11-04  |  4KB  |  109 lines

  1. /******************************************************************************
  2.  ExampleDemo.c
  3.  
  4.     This showcase application shows CDragAcrossTable and CDragAcrossTask. These
  5.     classes together provide the user feedback and programmer hooks to
  6.     implement drag and drop BETWEEN cells. To see how this works get the latest
  7.     showcase application from ftp.brown.edu in the /pub/tcl/examples directory
  8.     and add following files to a new segment
  9.     
  10.         CDragAcrossTable.c
  11.  
  12.         CDragAcrossTask.c
  13.         CGlobalMouseTask.c
  14.  
  15.         ExampleDemo.c
  16.         ExampleDemo.rsrc
  17.  
  18.         ForgetRgn.c
  19.  
  20.     Compile and run. Now create two CDragAcrossTable demo windows, select some
  21.     cells in one and then Control-click-and-hold to drag the selection around and 
  22.     between the windows. Hold the mouse close to the edge and the windows scroll.
  23.     When you release the mouse nothing happens...its just a demo of the class.
  24.     
  25.     If you have any questions or comments, please send email.
  26.             
  27.     AUTHOR: Andrew_Gilmartin@Brown.Edu
  28.     MODIFIED: 93-11-04
  29.  
  30.     Copyright (C) 1993 by Brown University. All rights reserved.
  31.  
  32.     Permission is granted to any individual or institution to use, copy,
  33.     or redistribute the binary version of this software and its
  34.     documentation provided this notice and the copyright notices are
  35.     retained.  Permission is granted to any individual or non-profit
  36.     institution to use, copy, modify, or redistribute the source files
  37.     of this software provided this notice and the copyright notices are
  38.     retained.  This software may not be distributed for profit, either
  39.     in original form or in derivative works, nor can the source be
  40.     distributed to other than an individual or a non-profit institution.
  41.     Any  individual or group interested in seeing and/or using these
  42.     source files but who are prevented from doing so by the above
  43.     constraints should contact Don Wolfe, Vice-President for Computer 
  44.     Systems at Brown University, (401) 863-7247, for possible
  45.     software licensing of the source developed at Brown.
  46.  
  47.     Brown University and Andrew James Gilmartin make no representations
  48.     about the suitability of this software for any purpose.
  49.  
  50.      BROWN UNIVERSITY AND ANDREW JAMES GILMARTIN GIVE NO WARRANTY, EITHER
  51.     EXPRESS OR IMPLIED, FOR THE PROGRAM AND/OR DOCUMENTATION PROVIDED,
  52.     INCLUDING, WITHOUT LIMITATION, WARRANTY OF MERCHANTABILITY AND
  53.     WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE.
  54.  
  55. ******************************************************************************/
  56.  
  57. #include <CDecorator.h>
  58. #include "CSApplication.h"
  59. #include "CDragAcrossTable.h"
  60. #include "ExampleDemo.h"
  61.  
  62.  
  63. extern CDecorator *gDecorator;
  64.  
  65.  
  66.  
  67. /******************************************************************************
  68.  INewDemo
  69.  
  70.     Build and place a window containing a CDragAcrossTable.
  71. ******************************************************************************/
  72.  
  73. void CDragAcrossTableDemoDir::INewDemo( CDirectorOwner *aSupervisor )
  74. {
  75.     CScrollPane* theScrollPane = NULL;
  76.     CDragAcrossTable* theTable = NULL;
  77.     int i;
  78.     
  79.     inherited::INewDemo( aSupervisor );
  80.     
  81.     itsWindow = new CWindow;
  82.     itsWindow->IWindow( 4560, FALSE, gDesktop, this );
  83.  
  84.     theScrollPane = new CScrollPane;
  85.     theScrollPane->IScrollPane
  86.         ( itsWindow, this
  87.         , 0, 0
  88.         , 0, 0
  89.         , sizELASTIC, sizELASTIC
  90.         , TRUE, TRUE, TRUE );
  91.     theScrollPane->FitToEnclFrame( TRUE, TRUE );
  92.  
  93.     theTable = new CDragAcrossTable;
  94.     theTable->IDragAcrossTable
  95.         ( theScrollPane, this
  96.         , 0, 0
  97.         , 0, 0
  98.         , sizELASTIC
  99.         , sizELASTIC );
  100.     theTable->FitToEnclosure( TRUE, TRUE );
  101.     theScrollPane->InstallPanorama( theTable );
  102.  
  103.     theTable->AddRow( 25, -1 );
  104.     theTable->AddCol( 25, -1 );
  105.     
  106.     gDecorator->StaggerWindow( itsWindow );
  107.     itsWindow->Select();
  108.  
  109. } /* CDragAcrossTableDemoDir */